/**
 * 
 */
package com.naiterui.ehp.bs.recommend.vo;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 续方 药品详情

 * @since 2.14
 */
@ApiModel(value = "MedicationBoxWithUsageVO", description = "药品列表VO")
@JsonIgnoreProperties(ignoreUnknown = true)
public class MedicationBoxWithUsageVO extends MedicationBoxVO implements Serializable {
    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 5989933481507652031L;
    /**
     * 用法用量：<code>usage</code>
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用法用量")
    private String usages;
    /**
     * 备注：<code>backup</code>
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "备注")
    private String backup;

    /**
     * 推荐数量：<code>quantity</code>
     */
    @ApiModelProperty(value = "推荐数量")
    private Integer quantity;

    /**
     * 用量周期
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用量周期(每[2]日1次,有0.5的情况)")
    private Double dosageCycle;

    /**
     * 用量周期单位
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用量周期单位(每2[日]1次)")
    private String dosageCycleUnit;

    /**
     * 用量次数
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用量次数(每2日[1]次,有若干次的情况)")
    private String dosageCount;

    /**
     * 每次用量
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "每次用量(每次[3]片,有适量的情况)")
    private String eachDosageCount;

    /**
     * 每次用量单位
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "每次用量单位(每次3[片])")
    private String eachDoseUnit;

    /**
     * 用药周期
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用药周期([2]周)")
    private Integer drugCycle;

    /**
     * 用药周期单位
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用药周期单位(2[周])")
    private String drugCycleUnit;

    /**
     * 推荐数量单位
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "推荐数量单位(2[盒])")
    private String quantityUnit;

    /**
     * 服用方法
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "服用方法(饭前[口服])")
    private String usageMethod;

    /**
     * 服用时间
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "服用时间([饭前]口服)")
    private String usageTime;

    /**
     * 是否包含用法用量详情
     */
    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "是否包含用法用量详情")
    private boolean containUsageDetail;

    @JsonInclude(Include.NON_NULL)
    @ApiModelProperty(value = "用量拼接字符串(每几日几次)")
    private String dosageStr;

    /**
     * 创建MedicationBoxVO实例
     * @throws 异常信息
     */
    public MedicationBoxWithUsageVO() {
        super();
    }

    /**
     * 创建MedicationBoxVO实例
     * @param id
     * @param name
     * @param commonName
     * @param spec
     * @param usage
     * @param image
     * @param salePrice
     * @param marketPrice
     * @throws 异常信息
     */
    public MedicationBoxWithUsageVO(Long id, String name, String commonName, String manufacturer, boolean sale, String spec, String usage, String image,
            String salePrice, String marketPrice, boolean isPrescribed, String drCommission, Integer drugType) {
        super(id, name, commonName, manufacturer, sale, spec, usage, image, salePrice, marketPrice, isPrescribed, drCommission, drugType);
    }

    public MedicationBoxWithUsageVO(Long id, String name, String commonName, String manufacturer, boolean sale, String spec, String usage, String image,
            String salePrice, String marketPrice, boolean isPrescribed, String drCommission, Integer drugType, boolean isZhengda) {
        super(id, name, commonName, manufacturer, sale, spec, usage, image, salePrice, marketPrice, isPrescribed, drCommission, drugType, isZhengda);
    }

    public Double getDosageCycle() {
        return this.dosageCycle;
    }

    public String getDosageCycleUnit() {
        return this.dosageCycleUnit;
    }

    public String getDosageCount() {
        return this.dosageCount;
    }

    public String getEachDosageCount() {
        return this.eachDosageCount;
    }

    public String getEachDoseUnit() {
        return this.eachDoseUnit;
    }

    public Integer getDrugCycle() {
        return this.drugCycle;
    }

    public String getDrugCycleUnit() {
        return this.drugCycleUnit;
    }

    @Override
    public String getQuantityUnit() {
        return this.quantityUnit;
    }

    public String getUsageMethod() {
        return this.usageMethod;
    }

    public String getUsageTime() {
        return this.usageTime;
    }

    public boolean isContainUsageDetail() {
        return this.containUsageDetail;
    }

    public void setDosageCycle(Double dosageCycle) {
        this.dosageCycle = dosageCycle;
    }

    public void setDosageCycleUnit(String dosageCycleUnit) {
        this.dosageCycleUnit = dosageCycleUnit;
    }

    public void setDosageCount(String dosageCount) {
        this.dosageCount = dosageCount;
    }

    public void setEachDosageCount(String eachDosageCount) {
        this.eachDosageCount = eachDosageCount;
    }

    public void setEachDoseUnit(String eachDoseUnit) {
        this.eachDoseUnit = eachDoseUnit;
    }

    public void setDrugCycle(Integer drugCycle) {
        this.drugCycle = drugCycle;
    }

    public void setDrugCycleUnit(String drugCycleUnit) {
        this.drugCycleUnit = drugCycleUnit;
    }

    @Override
    public void setQuantityUnit(String quantityUnit) {
        this.quantityUnit = quantityUnit;
    }

    public void setUsageMethod(String usageMethod) {
        this.usageMethod = usageMethod;
    }

    public void setUsageTime(String usageTime) {
        this.usageTime = usageTime;
    }

    public void setContainUsageDetail(boolean containUsageDetail) {
        this.containUsageDetail = containUsageDetail;
    }

    public String getUsages() {
        return this.usages;
    }

    public String getBackup() {
        return this.backup;
    }

    @Override
    public Integer getQuantity() {
        return this.quantity;
    }

    public void setUsages(String usages) {
        this.usages = usages;
    }

    public void setBackup(String backup) {
        this.backup = backup;
    }

    @Override
    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public String getDosageStr() {
        return this.dosageStr;
    }

    public void setDosageStr(String dosageStr) {
        this.dosageStr = dosageStr;
    }

}
